package com.jsb.laundry.service;

import com.jsb.laundry.model.dto.UpdUserInfoRequest;
import com.jsb.laundry.model.entity.Withdrawals;
import com.jsb.laundry.model.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RiderUserInfoService {
    /**
     * 站点列表
     *
     * @return
     */
    List<ShopsSiteListVo> findBySite();

    /**
     * 修改个人信息
     *
     * @param userInfoRequest
     * @return
     */
    int updUserInfo(UpdUserInfoRequest userInfoRequest);

    /**
     * 查询骑手是否关注公众号
     *
     * @param userId
     * @return
     */
    int findByFollow(String userId);

    /**
     * 待结算列表
     *
     * @param userId
     * @return
     */
    List<CapitalAccountUnstLogListVo> capitalAccountUnstLogList(String userId);

    /**
     * 已结算
     *
     * @param userId
     * @return
     */
    List<CapitalAccountUnstLogListVo> capitalAccountLogList(String userId);

    /**
     * 题库列表
     *
     * @return
     */
    List<QuestionBankVo> findByList();

    /**
     * 查询所以题目
     *
     * @return
     */
    List<QuestionBankVo> findByLists();

    /**
     * 用户得分
     *
     * @param userId
     * @param fraction
     * @return
     */
    int addLog(String userId, String fraction);

    /**
     * 查询用户答题次数
     *
     * @param userId
     * @return
     */
    int findByQuestionCount(String userId);

    /**
     * 查询用户绑定的站点
     *
     * @param userId
     * @return
     */
    String userSite(String userId);

    /**
     * 今日收入
     *
     * @param userId
     * @param startTime
     * @param endTime
     * @return
     */
    int todayMoney(String userId, String startTime, String endTime);

    /**
     * 今日单量
     *
     * @param userId
     * @param startTime
     * @param endTime
     * @return
     */
    int todayNumber(String userId, String startTime, String endTime);
    /**
     * 查询邀请排行榜
     * @return
     */
    List<FindByPromotionVo> findByPromotion();
    /**
     * 查询团队当月业绩
     * @param userId
     * @return
     */
    List<FindByPromotionListVo> findByPromotionList(String userId);
    /**
     * 查询下我的上级
     * @param userId
     * @return
     */
    FindByParentIdVo findByParentId(String userId);
    /**
     * 查询我的客户列表
     * @param userId
     * @return
     */
    List<FindByMyCustomVo> findByMyCustom(String userId);
    /**
     * 提现列表
     * @param userId
     * @return
     */
    List<RiderWithdrawalLogVo> findByWithdrawalList(String userId);
    /**
     * 提现
     * @param batchNumber
     * @param userId
     * @param money
     * @return
     */
    int addWithdrawalLog(String batchNumber,String userId,int money);
    /**
     * 查询用户金额和id
     * @param userId
     * @return
     */
    WithdrawalUserVo findByUserMoney(String userId);
    /**
     * 添加提现记录
     * @param withdrawals
     * @return
     */
    int addWithdrawalsLog(Withdrawals withdrawals);
    String findByQuestionInfo();
    int questionNumber(String userId);
    String findByIdNumber(String userId);
}
